package com.fwmagic.dp._4;

public abstract class HumanModel {
    //汽车启动
    protected abstract void start();

    //汽车停止
    protected abstract void stop();

    //汽车喇叭响
    protected abstract void alarm();

    //汽车引擎发动
    protected abstract void engineBoom();

    protected boolean isAlarm(){
        return true;
    }

    /**
     * 模板方法模式
     */
    //汽车跑起来
    public void run() {
        //先发动汽车
        start();
        //引擎开始轰鸣
        engineBoom();
        //过路口，按下喇叭
        if(isAlarm()){
            alarm();
        }
        //到目的地，停车
        stop();
    }

}
